﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using Talento21.Modelo;

namespace Talento21.Negocio.Servicio
{
    public class SrvEmpresa
    {
        SysGestion21Entities db;

        public SrvEmpresa()
            : this(new SysGestion21Entities())
        {

        }

        public SrvEmpresa(SysGestion21Entities context)
        {
            db = context;
        }

        public void Crear(InfEmpresas empresa)
        {
            db.AddToInfEmpresas(empresa);
            db.SaveChanges();
        }
        public List<InfEmpresas> ListarEmpresas(int? rut, string razon)
        {
            if (rut != null && rut.HasValue)
            {
                return (from empresa in db.InfEmpresas where empresa.Emp_rut == rut orderby empresa.RazonSocial select empresa).ToList();
            }

            if (!String.IsNullOrEmpty(razon))
            {
                return (from empresa in db.InfEmpresas where empresa.RazonSocial.ToUpper().Contains(razon.ToUpper()) orderby empresa.RazonSocial select empresa).ToList();
            }

            return (from empresa in db.InfEmpresas orderby empresa.RazonSocial select empresa).ToList();
        }

        public InfEmpresas ObtenerEmpresaPorRut(int rutEmpresa, string dv)
        {
            return (from empresa in db.InfEmpresas
                    where empresa.Emp_rut == rutEmpresa
                    && empresa.Dv == dv
                    select empresa).FirstOrDefault();
        }

        public InfEmpresas ObtenerEmpresaPorRut(int rutEmpresa)
        {
            return (from empresa in db.InfEmpresas
                    where empresa.Emp_rut == rutEmpresa
                    select empresa).FirstOrDefault();
        }


        public List<InfEmpresas> ObtenerEmpresas()
        {
            return (from empresa in db.InfEmpresas
                    select empresa).ToList();
        }

        public List<InfEmpresas> ObtenerEmpresaPorRutList(int rutEmpresa, string dv)
        {
            List<InfEmpresas> empresas = new List<InfEmpresas>();
            empresas.Add(ObtenerEmpresaPorRut(rutEmpresa, dv));
            return empresas;
        }

        public Boolean ModificarEmpresa(InfEmpresas empresa)
        {

            db.InfEmpresas.AddObject(empresa);
            db.ObjectStateManager.ChangeObjectState(empresa, System.Data.EntityState.Modified);
            return db.SaveChanges() > 0;
        }


    }
}